{
    "openapi": "3.0.1",
    "info": {
        "title": "OpenAPI definition",
        "version": "v0"
    },
    "paths": {
        "/article/{idArticle}": {
            "get": {
                "tags": [
                    "article-controller"
                ],
                "operationId": "getArticle",
                "parameters": [
                    {
                        "name": "idArticle",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArachniErrorRepresentation"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "OK",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArticleResponse"
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "article-controller"
                ],
                "operationId": "updateArticle",
                "parameters": [
                    {
                        "name": "idArticle",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateArticleRequest"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArachniErrorRepresentation"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "OK",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArticleResponse"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "article-controller"
                ],
                "operationId": "deleteArticle",
                "parameters": [
                    {
                        "name": "idArticle",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArachniErrorRepresentation"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/article": {
            "post": {
                "tags": [
                    "article-controller"
                ],
                "operationId": "createArticle",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateArticleRequest"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArachniErrorRepresentation"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "OK",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArticleResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/creator/list": {
            "get": {
                "tags": [
                    "creator-controller"
                ],
                "operationId": "getCreators",
                "parameters": [
                    {
                        "name": "searchString",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": ""
                        }
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 25
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "DESC",
                            "enum": [
                                "ASC",
                                "DESC"
                            ]
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArachniErrorRepresentation"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "OK",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaginationResponseString"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/category/list": {
            "get": {
                "tags": [
                    "category-controller"
                ],
                "operationId": "getCategories",
                "parameters": [
                    {
                        "name": "searchString",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": ""
                        }
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 25
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "DESC",
                            "enum": [
                                "ASC",
                                "DESC"
                            ]
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArachniErrorRepresentation"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "OK",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaginationResponseString"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/article/list": {
            "get": {
                "tags": [
                    "article-controller"
                ],
                "operationId": "getArticlePreviewList",
                "parameters": [
                    {
                        "name": "searchString",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": ""
                        }
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 0
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32",
                            "default": 25
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "DESC",
                            "enum": [
                                "ASC",
                                "DESC"
                            ]
                        }
                    },
                    {
                        "name": "sortBy",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "DATE",
                            "enum": [
                                "DATE",
                                "TITLE",
                                "CREATOR"
                            ]
                        }
                    },
                    {
                        "name": "creator",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "categories",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "startDate",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    },
                    {
                        "name": "finishDate",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/ArachniErrorRepresentation"
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "OK",
                        "content": {
                            "*/*": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaginationResponseArticlePreviewResponse"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "ArachniErrorRepresentation": {
                "type": "object",
                "properties": {
                    "errorCode": {
                        "type": "string"
                    },
                    "message": {
                        "type": "string"
                    }
                }
            },
            "UpdateArticleRequest": {
                "required": [
                    "categories",
                    "text",
                    "title"
                ],
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string"
                    },
                    "categories": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "text": {
                        "type": "string"
                    }
                }
            },
            "ArticleResponse": {
                "type": "object",
                "properties": {
                    "idArticle": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "title": {
                        "type": "string"
                    },
                    "categories": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "creator": {
                        "type": "string"
                    },
                    "creationDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "text": {
                        "type": "string"
                    }
                }
            },
            "CreateArticleRequest": {
                "required": [
                    "categories",
                    "creator",
                    "text",
                    "title"
                ],
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string"
                    },
                    "categories": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "text": {
                        "type": "string"
                    },
                    "creator": {
                        "type": "string"
                    }
                }
            },
            "PaginationResponseString": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "count": {
                        "type": "integer",
                        "format": "int64"
                    }
                }
            },
            "ArticlePreviewResponse": {
                "type": "object",
                "properties": {
                    "idArticle": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "title": {
                        "type": "string"
                    },
                    "categories": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "creator": {
                        "type": "string"
                    },
                    "creationDate": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "PaginationResponseArticlePreviewResponse": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ArticlePreviewResponse"
                        }
                    },
                    "count": {
                        "type": "integer",
                        "format": "int64"
                    }
                }
            }
        }
    }
}